Systems and methods for facilitating making partial selections of multidimensional information while maintaining a multidimensional structure

ABSTRACT

Various embodiments are directed to making partial selections of multidimensional information while maintaining a multidimensional structure. A server computing device may receive multidimensional data describing a structure of a physical object from one or more sources. The server computing device may then determine a data subset representative of the multidimensional data describing the structure of the physical object. The server computing device may then store the data subset on a storage device. Finally, the server computing device may send the data subset to a client computing device for displaying the structure of the physical object. The data subset may enable the client computing device to utilize fewer hardware computing processing, memory, and bandwidth resources to display the structure of the physical object than are associated with displaying the physical object using the multidimensional data. The client computing device may be incapable of displaying the multidimensional data.

CROSS-REFERENCE TO RELATED APPLICATIONS

This patent application claims priority to U.S. Patent Application Ser.No. 62/539,266, filed Jul. 31, 2017 and entitled “Systems and Methodsfor Facilitating Making Partial Selections of MultidimensionalInformation while maintaining a Multidimensional Structure,” of whichthe disclosure is incorporated herein, in its entirety, by reference.

BACKGROUND

Data processing operations, such as those used in ground and/or aerialsurveys, may generate data sets that represent objects in amultidimensional (e.g., three dimensional) space. For example, a surveymay utilize aerial scanning Light Detection and Ranging (LiDAR)techniques to capture high resolution scans of a building or pipeline.These scans may then be processed by multiple servers to generaterepresentative three-dimensional data sets. However, themultidimensional data sets generated by traditional processingoperations are extremely large (e.g., on the order of millions orbillions of data points) and typically require enormous computingresources to manage. As a result, client devices (including mobiledevices) tasked with utilizing these data sets typically do not haveenough processing, memory, or other computing resources sufficient toreceive and/or store multidimensional data. It is with respect to theseconsiderations and others that the various embodiments of the presentinvention have been made.

SUMMARY

As will be described in greater detail below, the instant disclosuredescribes various systems and methods for facilitating making partialselections of multidimensional information while maintaining amultidimensional structure.

In one example, a system may include at least one processor and at leastone memory storing computer-executable instructions. Thecomputer-executable instructions, when executed by the at least oneprocessor, may cause the system to (1) receive, by a server computingdevice, multidimensional data describing a structure of a physicalobject from one or more sources, (2) determine, by the server computingdevice, a data subset representative of the multidimensional datadescribing the structure of the physical object, (3) store, by theserver computing device, the data subset on a storage device, and (4)send, by the server computing device, the data subset to a clientcomputing device for displaying the structure of the physical object.

In some examples, the data subset may enable the client computing deviceto utilize fewer hardware computing processing, memory, and bandwidth todisplay the structure of the physical object than are associated withdisplaying the physical object using the multidimensional data. In someexamples, the client computing device may be incapable of displaying themultidimensional data.

In some examples, the multidimensional data may be received as multipleseparate data sets. In some examples, the data subset may be determinedby randomizing the multidimensional data to generate sample data that issmaller in size than the multidimensional data. In one example,randomizing the multidimensional data may include removing a temporaland/or a computational bias present in the multidimensional data.

In some examples, the multidimensional data may include image datarepresenting the physical object in three-dimensions. In some examples,a source of the multidimensional data may include a Light Detection andRanging (LiDAR) data source. In some examples, the data subset may bestored as a file on the storage device and the storage device mayinclude one or more cloud storage devices.

In some examples, the data subset may be sent in response to a requestby the client computing device to receive a partial selection of themultidimensional data. In some examples, the data subset maintains anoriginal structure of the physical object.

In one embodiment, a computer-implemented method for making partialselections of multidimensional information while maintaining amultidimensional structure may include (1) receiving, by a servercomputing device, multidimensional data describing a structure of aphysical object from one or more sources, (2) determining, by the servercomputing device, a data subset representative of the multidimensionaldata describing the structure of the physical object, (3) storing, bythe server computing device, the data subset on a storage device, and(4) sending, by the server computing device, the data subset to a clientcomputing device for displaying the structure of the physical object.

In some examples, the data subset may enable the client computing deviceto utilize fewer hardware computing processing, memory, and bandwidth todisplay the structure of the physical object than are associated withdisplaying the physical object using the multidimensional data. In someexamples, the client computing device may be incapable of displaying themultidimensional data.

In some examples, the multidimensional data may be received as multipleseparate data sets. In some examples, the data subset may be determinedby randomizing the multidimensional data to generate sample data that issmaller in size than the multidimensional data. In one example,randomizing the multidimensional data may include removing a temporalbias and/or a computational bias present in the multidimensional data.

In some examples, the multidimensional data may include image datarepresenting the physical object in three-dimensions. In some examples,a source of the multidimensional data may include a Light Detection andRanging (LiDAR) data source. In some examples, the data subset may bestored as a file on the storage device and the storage device mayinclude one or more cloud storage devices.

In some examples, the data subset may be sent in response to a requestby the client computing device to receive a partial selection of themultidimensional data. In some examples, the data subset maintains anoriginal structure of the physical object.

In some examples, the above-described method may be encoded ascomputer-readable instructions on a non-transitory computer-readablemedium. For example, a computer-readable medium may include one or morecomputer-executable instructions that, when executed by at least oneprocessor of a server computing device, may cause the server computingdevice to (1) receive, by the server computing device, multidimensionaldata describing a structure of a physical object from one or moresources, (2) determine, by the server computing device, a data subsetrepresentative of the multidimensional data describing the structure ofthe physical object, (3) store, by the server computing device, the datasubset on a storage device, and (4) send, by the server computingdevice, the data subset to a client computing device for displaying thestructure of the physical object.

In some examples, the data subset may enable the client computing deviceto utilize fewer hardware computing processing, memory, and bandwidth todisplay the structure of the physical object than are associated withdisplaying the physical object using the multidimensional data. In someexamples, the client computing device may be incapable of displaying themultidimensional data.

In some examples, the multidimensional data may be received as multipleseparate data sets. In some examples, the data subset may be determinedby randomizing the multidimensional data to generate sample data that issmaller in size than the multidimensional data. In one example,randomizing the multidimensional data may include removing a temporalbias and/or a computational bias present in the multidimensional data.

In some examples, the multidimensional data may include image datarepresenting the physical object in three-dimensions. In some examples,a source of the multidimensional data may include a Light Detection andRanging (LiDAR) data source. In some examples, the data subset may bestored as a file on the storage device and the storage device mayinclude one or more cloud storage devices.

In some examples, the data subset may be sent in response to a requestby the client computing device to receive a partial selection of themultidimensional data. In some examples, the data subset maintains anoriginal structure of the physical object.

Features from any of the above-mentioned embodiments may be used incombination with one another in accordance with the general principlesdescribed herein. These and other embodiments, features, and advantageswill be more fully understood upon reading the following detaileddescription in conjunction with the accompanying drawings and claims.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 illustrates a block diagram of an example system for facilitatingmaking partial selections of multidimensional information whilemaintaining a multidimensional structure, according to an exampleembodiment.

FIG. 2 illustrates a block diagram of a server computing device forfacilitating making partial selections of multidimensional informationwhile maintaining a multidimensional structure, according to an exampleembodiment.

FIG. 3 illustrates a flow diagram of an example process for facilitatingmaking partial selections of multidimensional information whilemaintaining a multidimensional structure, according to an exampleembodiment.

DETAILED DESCRIPTION

Various embodiments of the disclosure are directed to systems andmethods for facilitating making partial selections of multidimensionalinformation while maintaining a multidimensional structure. According toan aspect of the disclosure, a server computing device may receivemultidimensional data describing a structure of an object from one ormore sources. The server computing device may then determine a datasubset representative of the multidimensional data. The data subset mayinclude a randomized sample of the multidimensional data describing thestructure of the object. The server computing device may then store thedata subset on a storage device. Finally, the server computing devicemay send the data subset to a client computing device for displaying thestructure of the object.

In some embodiments, the multidimensional data may include a two orthree-dimensional image data file collected from multiple sources (e.g.,LIDAR sensor data, image-derived point cloud data, thermal imaging data,etc.). The server computing device may include one or more servers in adistributed (e.g., cloud-based) computing system. The data subsetrepresentative of the multidimensional data may be determined byrandomizing the received multidimensional data. The multidimensionaldata may be randomized by applying a randomization algorithm (e.g., aFisher Yates shuffle algorithm) to the multidimensional data. Thedetermined data subset may include sample data which is smaller in sizethan the initially received multidimensional data. The data subset maybe stored as a single file on a storage device within a distributed(e.g., cloud-based) computing system. The data subset including therandomized multidimensional data may be sent to a mobile computingdevice for the processing and displaying three-dimensional image data.

The embodiments of the disclosure may further include the collection oflarge amounts of three-dimensional data. This data may contain spatialinformation, but this information is biased by the physical act ofrecording it to a storage device (e.g., a disk). Because the entire dataset is typically not collected simultaneously, data points may spatiallycluster. Even computed datasets (such as those based onthree-dimensional photogrammetry) may be biased by the content of thesource two dimensional images. After the initial data collection, thethree-dimensional data may be transformed using a distributedrandomization system. This transformation removes temporal andcomputational bias, as well as any other unanticipated biases, from thedata. The unbiased data may then be stored and made available on aninformation system. When a client computing system requires a partialselection of the data, the information system returns the data in theunbiased order. The client computing system receives data with notemporal or computational bias, and no statistical selection bias.Removing the selection bias reduces the chance of over or underestimation, enables proper statistical analysis of the entire data set,mitigates assumptions of false positives and false negatives based onhuman observation of the data. Because each data point has been randomlyordered, each additional point adds spatial information to the datasetthat the client computing has received (consequence of temporalclustering). The client computing system may use this to make partialselections that accurately represent a three-dimensional objectdescribed by the data according to the client computing system'sprocessing constraints (e.g., available memory, etc.).

The embodiments of the disclosure described herein provide severaladvantages over traditional methods of processing, storing, andcommunicating large amounts of multidimensional data (e.g.,three-dimensional data) in a computer system. Traditional methods mayuse an indexing method, where one of several tree data structures areused to implement spatial indexing techniques. In these traditionalmethods, a selection is made in the index which then is used to locatethe actual data on disk. Thus, traditional methods rely on duplicatingdata (thus creating storage overhead). Traditional methods also fail tomaintain consistent spatial resolution or a multidimensional (e.g.,three-dimensional) structure for partial selections of data. Moreover,the implementation of the aforementioned traditional methods is limitedto using high-end hardware (e.g., expensive computing systems with largestorage capacities) for carrying out processing operations.

The embodiments described herein enable the processing, storing, andcommunicating large amounts of multidimensional data (e.g.,three-dimensional data) in a computer system by pre-processing the datathereby allowing low-latency access to the data at any resolution (up tothe maximum resolution of the data) while maintaining spatial resolutionand multidimensional structure. Advantages over traditional methodsinclude eliminating processing costs associated with a server indelivering the data to other computing systems (thereby enabling the useof lower-cost systems to store the data), enabling client computingdevices to process datasets many times larger than it is capable ofstoring, enabling client computing devices to process any subset of thedata (each of the data subsets may be random samples), increasingresolution when viewing the data on client computing devices by fetchingadditional data without duplicating previously viewed data, and enablingthe division of a multidimensional data subset on client computingdevices into further data subsets for processing. The further datasubsets may also be randomly selected such that the processing steps maybe repeated on the multidimensional data subset but in a differentorder, thus enabling testing against a bias. Thus, the embodimentsdescribed herein improve the functioning of computing devices as well asthe technical field of multidimensional data processing by reducingsystem resources (e.g., processor, memory, bandwidth, etc.) needed forcommunicating multidimensional data in a computer system so that theymay be consumed by client computing devices having limited processing,storage and/or bandwidth capabilities.

Embodiments of the disclosure now will be described more fullyhereinafter with reference to the accompanying drawings, in whichembodiments of the invention are shown. This invention may, however, beembodied in many different forms and should not be construed as limitedto the embodiments set forth herein; rather, these embodiments areprovided so that this disclosure will be thorough and complete, and willfully convey the scope of the invention to those skilled in the art.Like numbers refer to like elements throughout.

System Overview

FIG. 1 represents a block diagram of an example system 100 facilitatingmaking partial selections of multidimensional information whilemaintaining a multidimensional structure. As shown in FIG. 1, the system100 may include at least one server computing device 105, one or moreclient computing devices 115, one or more data sources 130, and a datastorage device 140. As desired, one or more suitable networks 120 mayfacilitate communication between various components of the system 100.

With reference to FIG. 1, the server computing device 105 may receivemultidimensional data 135 describing a structure of an object (such asthe object 102) from the data source 130. For example, themultidimensional data 135 may include three-dimensional image data of abuilding, land mass, powerlines, or pipelines obtained from an aerialsurvey conducted using laser scanning techniques (e.g., LiDAR). Asdesired, the server computing device 105 may include any number ofprocessor-driven devices or systems, including but not limited to,cloud-based or dedicated application servers, a mobile computer, anapplication-specific circuit, a minicomputer, a microcontroller and/orany other processor-driven devices or systems configured to run certainsoftware applications for receiving and processing large amounts ofdata. The server computing device 105 may utilize one or more processors150 to execute computer-readable instructions that facilitate thegeneral operation of the server computing device 105 and (as will bedescribed in greater detail below) the processing of multidimensionaldata 135 received from the data source 130.

In addition to having one or more processors 150, the server computingdevice 105 may further include and/or be associated with one or morememory devices 151, input/output (“I/O”) interface(s) 152, and/orcommunication and/or network interface(s) 153. The memory 151 may be anycomputer-readable medium, coupled to the processor(s) 150, such asrandom access memory (“RAM”), read-only memory (“ROM”), and/or aremovable storage device. The memory 151 may store a wide variety ofdata files 154 and/or various program modules, such as an operatingsystem (“OS”) 155 and data randomization module 156.

The data files 154 may include any suitable data that facilitates theoperation of the server computing device 105 and/or interaction of theserver computing device 105 with one or more other components of thesystem 100. For example, the data files 154 may include informationassociated with invoking the data randomization module 156 and/orinformation that facilitates the output of information to a recipientsystem (e.g., client computing device 110 and/or data storage device140).

The OS 155 may be suitable module that facilitates the general operationof the server computing device 105, as well as the execution of otherprogram modules. For example, the OS 155 may be, but is not limited to,Microsoft Windows®, Apple OSX™, UNIX, LINUX, a mainframe computeroperating system (e.g., IBM z/OS, MVS, OS/390, etc.), or a speciallydesigned operating system.

The data randomization module 156 may include one or more suitablehardware modules, software modules and/or applications configured tofacilitate obtaining the multidimensional data 135 describing the object102 from the data source 130. Additionally, the data randomizationmodule 156 may be configured to determine a data subset 145representative of the multidimensional data. Additionally, the datarandomization module 156 may be configured to store the data subset 145on the data storage device 140. Additionally, the data randomizationmodule 156 may be configured to send the data subset 145 to the clientcomputing device 110 for displaying the structure of the object 102. Afew examples of the operations that may be performed by the datarandomization module 156 and/or the server computing device 105 aredescribed in greater detail below with reference to FIGS. 2-3.

The network(s) 120 may include any telecommunication or computer network(e.g., an intranet, a wide area network, a local area network, apersonal area network, the Internet, a cellular or mobile network, etc.)that may be utilized to facilitate communication between the servercomputing device 105, the client computing device 110, the data source130, and/or the data storage device 140.

The one or more I/O interfaces 152 may facilitate communication betweenthe server computing device 105 and one or more input/output devices;for example, one or more user interface devices, such as a display, akeypad, a touch screen display, a microphone, a speaker, etc., thatfacilitate user interaction with the server computing device 105. Theone or more network and/or communication interfaces 153 may facilitateconnection of the server computing device 105 to one or more suitablenetworks, for example, the network 120. In this regard, the servercomputing device 105 may receive and/or communicate information to othercomponents of the system 100 (such as the client computing device 110,the data source 130, and/or the data storage device 140.

With continued reference to FIG. 1, any number of client computingdevices 110 may be provided. The client computing device 110 mayinclude, but is not limited to, a mobile device (e.g., a mobile phone,Personal Digital Assistants (PDAs), smartphone, tablet computing device,etc.), a desktop computing device, a laptop computing device, servers,multimedia players, embedded systems, wearable devices (e.g., smartwatches, smart glasses), virtual reality (VR) or augmented reality (AR)systems, gaming consoles, combinations of one or more of the same, orany other suitable computing device.

In an embodiment, the client computing device 110 may be configured toutilize data processing/display module 167 to receive the data subset145, including randomized multidimensional data representing thestructure of the object 102, from the data storage device 140. As willbe described in greater detail below the randomized multidimensionaldata may include randomly sampled data representing the object 102utilizing fewer data points than data points included in themultidimensional data 135. The data processing/display module 167 mayuse the randomly sampled data to make partial selections that accuratelyrepresent the object 102 described by the multidimensional data 135 in amultidimensional (e.g., three-dimensional) space in accordance withprocessing, bandwidth, and/or memory constraints associated with theclient computing device 110. The partial selections may then bedisplayed for viewing (e.g., in a web browser) on the client computingdevice 110.

In addition to having one or more processors 160, the client computingdevice 110 may further include and/or be associated with one or morememory devices 161, input/output (“I/O”) interface(s) 162, and/orcommunication and/or network interface(s) 163. The memory 161 may be anycomputer-readable medium, coupled to the processor(s) 160, such asrandom access memory (“RAM”), read-only memory (“ROM”), and/or aremovable storage device. The memory 161 may store a wide variety ofdata files 164 and/or various program modules, such as an operatingsystem (“OS”) 166, and the data processing/display module 167.

The data files 164 may include any suitable data that facilitates theoperation of the client computing device 110 and/or interaction of theclient computing device 110 with one or more other components of thesystem 100. For example, the data files 164 may include informationassociated with accessing invoking the data processing/display module167 to receive and display the data subset 145 from the data storagedevice 140.

The OS 166 may be suitable module that facilitates the general operationof the client computing device 110 as well as the execution of otherprogram modules. For example, the OS 166 may be, but is not limited to,a suitable mobile OS or a specially designed operating system. Asdesired, the client computing device 110 may additionally include one ormore communication modules that facilitate interaction with othercomputing devices and/or other communications functionality. Forexample, a suitable near field communication module, radio frequencymodule, Bluetooth module, or other suitable communication module may beincluded in client computing device 110.

As discussed above, the data processing/display module 167 may includeone or more suitable software modules and/or applications configured tofacilitate processing and displaying the data subset 145. For example,the data processing/display module 167 may be configured to displayrandomized data in the data subset 145 as a three-dimensional image ofthe object 102 in a web browser on a display screen of the clientcomputing device 110. The display of the randomized data may represent apartial selection (e.g., a subset of the multidimensional data 135) thataccurately represents a three-dimensional object while maintaining theoriginal structure of the object and in accordance with availablememory, processing, and bandwidth constraints associated with the clientcomputing device 110.

With continued reference to the client computing device 110, the one ormore I/O interfaces 162 may facilitate communication between the clientcomputing device 110 and one or more input/output devices; for example,one or more user interface devices, such as a display, a keypad, amouse, a pointing device, a control panel, a touch screen display, aremote control, a microphone, a speaker, etc., that facilitate userinteraction with the client computing device 110. The one or morenetwork and/or communication interfaces 163 may facilitate connection ofthe client computing device 110 to one or more suitable networks and/orcommunication links. In this regard, the client computing device 110 mayreceive and/or communicate information to other components of the system100, such as the server computing device 105, the data source 130, thedata storage device 140, and/or other devices and/or systems.

The data source 130, in some embodiments, may include multiple datasources configured to store the multidimensional data 135. For example,one data source in the data source 130 may store LiDAR sensor dataassociated with an object. Another data source in the data source 130may store image-derived point cloud data (e.g., photographs of an objecttaken from different angles and computed positions of the object inthree-dimensional space). As defined herein a “point cloud” may includea set of data points in a three-dimensional coordinate system that areintended to represent the external surface of an object. Another datasource in the data source 130 may store data scans associated with anobject. The data source 130 may also be other data sources configured tostore other types of data in accordance with the embodiments describedherein.

The data storage device 140, in some embodiments, may include adistributed storage system to store the data subset 145. For example,the data storage device 140 may include multiple different servers, harddrives, and/or cloud storage systems.

The system 100 shown in and described with respect to FIG. 1 is providedby way of example only. Numerous other operating environments, systemarchitectures, and device configurations are possible. Other systemembodiments can include fewer or greater numbers of components and mayincorporate some or all of the functionality described with respect tothe system components shown in FIG. 1. Accordingly, embodiments of thedisclosure should not be construed as being limited to any particularoperating environment, system architecture, or device configuration.

FIG. 2 illustrates a block diagram 200 of the data randomization module156 on the server computing device 105 being utilized to determine thedata subset 145 from the multidimensional data 135, according to anexample embodiment. Turning now to FIG. 2, the data randomization module156 may receive the multidimensional data 135 previously received fromthe data source 130 by the server computing device 105. In someembodiments, the multidimensional data 135 may include a large number ofdata points 205 describing the structure of a three-dimensional objectsuch as the object 102. As defined herein, an “object” may include asingle physical object (e.g., a building, a vehicle, etc.), a collectionof multiple objects within a predetermined area (e.g., utility powerlines, oil or natural gas pipelines, etc.), a space within a structure(e.g., a room), and/or a land mass upon which multiple objects mayreside. In some embodiments, the data points 205 may be on the order ofmillions or billions of data points utilized to accurately represent theobject 102 in a multidimensional space.

In some embodiments, the data randomization module 156 may randomize themultidimensional data 135 utilizing a suitable statistical algorithmsuch as a shuffle algorithm. One example of a suitable shuffle algorithmis the Fisher-Yates algorithm (or Fisher-Yates shuffle). TheFisher-Yates algorithm is an unbiased randomization algorithm. TheFisher-Yates algorithm may be utilized to generate a random permutationof a finite sequence—in plain terms, the algorithm shuffles thesequence. The algorithm may effectively put all of a group of elementsinto a figurative “hat.” The algorithm may then continually determinethe next element by randomly drawing an element from the hat until noelements remain. The algorithm may produce an unbiased permutationmaking every permutation equally likely. The algorithm may also take anamount of time proportional to the number of elements being shuffled andshuffle them in place, thus making execution very efficient.

In randomizing the multidimensional data 135, the data randomizationmodule 156 may execute the algorithm to “shuffle” the data points 205and then randomly draw (or sample) a data subset (e.g., the data subset145) including a smaller number of randomized data points 210. Due tothe unbiased nature of the randomization and given the large number ofinitial data points 205, the resulting data subset 145 generated by thedata randomization module 156 has a very high likelihood of accuratelydescribing the object 102 using the randomized data points 210. Inutilizing the data randomization module 156 to randomize data, a uniformdistribution (e.g., a rectangular distribution) of the data may beproduced where all outcomes are equally likely and where there is nobias between them.

As defined herein, a “bias” may include a statistical measure orattribute calculated in such a way that it is systematically differentfrom the population parameter being estimated. As discussed above,multidimensional data containing spatial information may be biased bythe physical act of recording the information to a storage device (e.g.,a disk) over multiple time periods. As a result, because the entire dataset is not collected simultaneously, data points may spatially clusterleading to inaccuracies in an object (or objects) being described by thedata set. However, due to the unbiased nature of the randomizationperformed by the data randomization module 156 when applied to uniformdata, each data point that is read is a “simple random sample.” Thus,when statistical operations are performed on a data subset (e.g., anaverage calculation), the operations follow a normal distribution (e.g.,by the central limit theorem), and the “accuracy” varies inversely withthe square root of the sample size. Therefore, the more data that isread or processed by the data randomization module 156, the greater theaccuracy of the randomized or sample data.

Thus, in some examples, the randomized data points 210 in the datasubset 145 may include only thousands of data points (instead of themillions or billions of data points 205 in the multidimensional data135. For example, the multidimensional data 135 may include millions ofpixels (e.g., data points) describing a high resolutionthree-dimensional image of a room in a building having a door, fourwalls, and a window. After utilizing the data randomization module 156,the data subset 145 may include thousands of data points describing theroom in which the three-dimensional image of the room is reformed (e.g.,at a lower resolution) with all its features (e.g., the door, the walls,and the window) being represented. Thus, the multidimensional structureof the object 102 is maintained within the data subset 145.

Operational Overview

FIG. 3 illustrates a flow diagram of an example process 300 forfacilitating making partial selections of multidimensional informationwhile maintaining a multidimensional structure, according to an exampleembodiment. In certain embodiments, the operations of the exampleprocess 300 may be performed by a server computing device, such as theserver computing device 105 illustrated in FIG. 1. The process 300 maybegin at block 305.

At block 305, the data randomization module 156 (executing on the servercomputing device 105) may receive multidimensional data describing astructure of a physical object (such as the object 102 of FIG. 1) fromone or more sources. For example, the data randomization module mayreceive the multidimensional data 135 from the data source 130 as shownin FIG. 2. In some embodiments, the multidimensional data 135 mayinclude three-dimensional data describing and/or representing the object102. In some embodiments, the multidimensional data 135 may be receivedas a file from multiple sources (e.g., a LiDAR data source, animage-derived point cloud data source, a thermal imaging data source,etc.). In other embodiments, the multidimensional data 135 may bereceived as multiple data sets (in multiple files) from multiple datasources. In some embodiments, the multidimensional data 135 may includeLiDAR sensor data, image-derived point cloud data, and/or data scans. Insome embodiments, the multidimensional data 135 may include a largenumber of data points (e.g., on the order of millions or billions ofdata points) utilized to describe the object 102.

At block 310, the data randomization module 156 may determine a datasubset (e.g., the data subset 145 of FIGS. 1 and 2) representative ofthe multidimensional data describing the structure of the physicalobject that was received at block 305. For example, the datarandomization module 156 may randomize or shuffle the multidimensionaldata 135 to generate a data subset 145 including sample data that issmaller in size (e.g., thousands of data points) than themultidimensional data 135 (which may contain millions or billions ofdata points). In some embodiments, the data randomization module 156 mayrandomize or shuffle the multidimensional data 135 by removing atemporal bias and/or a computational bias present in themultidimensional data 135. In some embodiments, the data randomizationmodule 156 may utilize a shuffle algorithm to randomize themultidimensional data 135. In some embodiments, where themultidimensional data 135 includes an extremely large amount of data(e.g., billions of data points), the data randomization module 156 mayutilize or shuffle the multidimensional data 135 across multipledistributed computing systems simultaneously.

At block 315, the data randomization module 156 may store the datasubset 145 determined at block 310 on a storage device. For example, thedata randomization module 156 may instruct the server computing device105 to store the data subset 145 (including the randomized data) on thedata storage device 140. In some embodiments, the data storage device140 may include one or more cloud storage devices. Thus, in someexamples, the data subset 145 may be stored as a file (or files) on theone or more cloud storage devices.

At block 320, the data randomization module 156 may send the data subset145 stored at block 315 to a client computing device for displaying thestructure of the physical object. For example, in some embodiments, thedata randomization module 156 may instruct the server computing device105 to request that data storage device 140 send the data subset 145 tothe client computing device 110 of FIG. 1. In some embodiments, the datarandomization module 156 may instruct the server computing device 105 toretrieve the data subset 145 from the data storage device 140 and thensend the data subset 145 to the client computing device 110. In someembodiments, the client computing device 110 may request the data subset145 (from either the server computing device 105 and/or the data storagedevice 140), prior to the data subset 145 being sent. Upon receiving thedata subset 145, the client computing device 110 may execute a dataprocessing/display module (e.g., the data processing/display module 167of FIG. 1) to process and display the randomized data in the data subset145. For example, the data processing/display module 167 may beconfigured to display the randomized data in the data subset 145 as athree-dimensional image of the object 102 in a web browser on a displayscreen of the client computing device 110. The display of the randomizeddata in the data subset 145 on the client computing device 110 mayrepresent a partial selection (e.g., a subset of the multidimensionaldata 135) that accurately represents a three-dimensional object whilemaintaining the original structure of the object 102 and in accordancewith available memory, processing, and bandwidth constraints associatedwith the client computing device 110.

Thus, the smaller size of the data subset 145 may enable the clientcomputing device 110 to utilize fewer hardware computing processing,memory, and bandwidth to display the structure of the object 102 thanare associated with displaying the object 102 using the multidimensionaldata 135 when the client computing device 110 would otherwise beincapable of displaying the multidimensional data 135. For example, inaccordance with the embodiments described herein, a largethree-dimensional data file describing an object (such as a land mass)may easily exceed the memory and storage limitations of a handheldcomputing device and further take up to several hours to communicateover a 1 GB Internet connection (or even longer over slowerconnections). By applying the embodiments described herein, a randomizedor sample data file accurately describing the land mass may be generatedsuch that it may be stored on the same handheld computing device andfurther communicated over the aforementioned Internet connection in amatter of minutes due to having a smaller file size.

The process 300 may end following block 320.

Various embodiments of the invention are described above with referenceto block and flow diagrams of systems, methods, apparatuses, and/orcomputer program products according to example embodiments. It will beunderstood that one or more blocks of the block diagrams and flowdiagrams, and combinations of blocks in the block diagrams and the flowdiagrams, respectively, can be implemented by computer-executableprogram instructions. Likewise, some blocks of the block diagrams andflow diagrams may not necessarily need to be performed in the orderpresented, or may not necessarily need to be performed at all, in someembodiments.

Various block and/or flow diagrams of systems, methods, apparatus,and/or computer program products according to example embodiments aredescribed above. It will be understood that one or more blocks of theblock diagrams and flow diagrams, and combinations of blocks in theblock diagrams and flow diagrams, respectively, can be implemented bycomputer-executable program instructions. Likewise, some blocks of theblock diagrams and flow diagrams may not necessarily need to beperformed in the order presented, or may not necessarily need to beperformed at all, according to some embodiments.

The computer-executable program instructions may be loaded onto aspecial purpose computer or other particular machine, a processor, orother programmable data processing apparatus to produce a particularmachine, such that the instructions that execute on the computer,processor, or other programmable data processing apparatus create meansfor implementing one or more functions specified in the flow diagramblock or blocks. The computer program instructions may also be stored ina computer-readable memory that can direct a computer or otherprogrammable data processing apparatus to function in a particularmanner, such that the instructions stored in the computer-readablememory produce an article of manufacture including instruction meansthat implement one or more functions specified in the flow diagram blockor blocks.

As an example, embodiments may provide for a computer program product,comprising a computer-readable medium having a computer-readable programcode or program instructions embodied therein, said computer-readableprogram code adapted to be executed to implement one or more functionsspecified in the flow diagram block or blocks. The term“computer-readable medium,” as used herein, generally refers to any formof device, carrier, or medium capable of storing or carryingcomputer-readable instructions. Examples of computer-readable mediainclude, without limitation, transmission-type media, such as carrierwaves, and non-transitory-type media, such as magnetic-storage media(e.g., hard disk drives, tape drives, and floppy disks), optical-storagemedia (e.g., Compact Disks (CDs), Digital Video Disks (DVDs), andBLU-RAY disks), electronic-storage media (e.g., solid-state drives andflash media), and other distribution systems.

The computer program instructions may also be loaded onto a computer orother programmable data processing apparatus to cause a series ofoperational elements or steps to be performed on the computer or otherprogrammable apparatus to produce a computer-implemented process suchthat the instructions that execute on the computer or other programmableapparatus provide elements or steps for implementing the functionsspecified in the flow diagram block or blocks.

Accordingly, blocks of the block diagrams and flow diagrams supportcombinations of means for performing the specified functions,combinations of elements or steps for performing the specified functionsand program instruction means for performing the specified functions. Itwill also be understood that each block of the block diagrams and flowdiagrams, and combinations of blocks in the block diagrams and flowdiagrams, can be implemented by special purpose, hardware-based computersystems that perform the specified functions, elements or steps, orcombinations of special purpose hardware and computer instructions.

Many modifications and other embodiments of the invention set forthherein will be apparent having the benefit of the teachings presented inthe foregoing descriptions and the associated drawings. Therefore, it isto be understood that the invention is not to be limited to the specificembodiments disclosed and that modifications and other embodiments areintended to be included within the scope of the appended claims.Although specific terms are employed herein, they are used in a genericand descriptive sense only and not for purposes of limitation.

What is claimed is:
 1. A system for making partial selections ofmultidimensional information while maintaining a multidimensionalstructure, the system comprising: at least one processor; and at leastone memory storing computer-executable instructions that when executedby the at least one processor, cause the system to: receive, by a servercomputing device, multidimensional data describing a structure of aphysical object from one or more sources, wherein the one or moresources comprises a Light Detection and Ranging (LiDAR) data source;determine, by the server computing device, a data subset representativeof the multidimensional data describing the structure of the physicalobject, wherein the data subset is determined by randomizing themultidimensional data to generate sample data that is smaller in sizethan the multidimensional data, wherein randomizing the multidimensionaldata comprises removing a temporal bias and a computational bias presentin the multidimensional data, wherein the temporal bias and thecomputational bias comprise a statistical measure representing arecording of spatial information in the data set to a storage deviceover a plurality of time periods such that data points in the data setare spatially clustered leading to inaccuracies in the describedstructure of the physical object; store, by the server computing device,the data subset on the storage device; and send, by the server computingdevice, the data subset to a client computing device for displaying thestructure of the physical object, wherein the data subset enables theclient computing device to utilize fewer hardware computing processing,memory, and network bandwidth to display the structure of the physicalobject than are associated with displaying the physical object using themultidimensional data, wherein the client computing device is incapableof displaying the multidimensional data.
 2. The system of claim 1,wherein the multidimensional data is received as a plurality of separatedata sets.
 3. The system of claim 1, wherein the multidimensional datacomprises image data representing the physical object inthree-dimensions.
 4. The system of claim 1, wherein the data subset isstored as a file on the storage device, the storage device comprisingone or more cloud storage devices.
 5. The system of claim 1, wherein thedata subset is sent in response to a request by the client computingdevice to receive a partial selection of the multidimensional data. 6.The system of claim 1, wherein the data subset maintains an originalstructure of the physical object.
 7. A computer-implemented method formaking partial selections of multidimensional information whilemaintaining a multidimensional structure, at least a portion of themethod being performed by a server computing device comprising at leastone processor, the method comprising: receiving, by the server computingdevice, multidimensional data describing a structure of a physicalobject from one or more sources, wherein the one or more sourcescomprises a Light Detection and Ranging (LiDAR) data source;determining, by the server computing device, a data subsetrepresentative of the multidimensional data describing the structure ofthe physical object, wherein determining the data subset comprisesrandomizing the multidimensional data to generate sample data that issmaller in size than the multidimensional data, wherein randomizing themultidimensional data comprises removing a temporal bias and acomputational bias present in the multidimensional data, wherein thetemporal bias and the computational bias comprise a statistical measurerepresenting a recording of spatial information in the data set to astorage device over a plurality of time periods such that data points inthe data set are spatially clustered leading to inaccuracies in thedescribed structure of the physical object; storing, by the servercomputing device, the data subset on the storage device; and sending, bythe server computing device, the data subset to a client computingdevice for displaying the structure of the physical object, wherein thedata subset enables the client computing device to utilize fewerhardware computing processing, memory, and network bandwidth to displaythe structure of the physical object than are associated with displayingthe physical object using the multidimensional data, wherein the clientcomputing device is incapable of displaying the multidimensional data.8. The computer-implemented method of claim 7, wherein themultidimensional data is received as a plurality of separate data sets.9. The computer-implemented method of claim 7, wherein themultidimensional data comprises image data representing the physicalobject in three-dimensions.
 10. The computer-implemented method of claim7, wherein the data subset is stored as a file on the storage device,the storage device comprising one or more cloud storage devices.
 11. Thecomputer-implemented method of claim 7, wherein the data subset is sentin response to a request by the client computing device to receive apartial selection of the multidimensional data.
 12. Thecomputer-implemented method of claim 7, wherein the data subsetmaintains an original structure of the physical object.
 13. Anon-transitory computer-readable medium comprising one or morecomputer-readable instructions that, when executed by at least oneprocessor of a server computing device, cause the server computingdevice to: receive, multidimensional data describing a structure of aphysical object from one or more sources, wherein the one or moresources comprises a Light Detection and Ranging (LiDAR) data source;determine a data subset representative of the multidimensional datadescribing the structure of the physical object, wherein the data subsetis determined by randomizing the multidimensional data to generatesample data that is smaller in size than the multidimensional data,wherein randomizing the multidimensional data comprises removing atemporal bias and a computational bias present in the multidimensionaldata, wherein the temporal bias and the computational bias comprise astatistical measure representing a recording of spatial information inthe data set to a storage device over a plurality of time periods suchthat data points in the data set are spatially clustered leading toinaccuracies in the described structure of the physical object; storethe data subset on the storage device; and send the data subset to aclient computing device for displaying the structure of the physicalobject, wherein the data subset enables the client computing device toutilize fewer hardware computing processing, memory, and networkbandwidth to display the structure of the physical object than areassociated with displaying the physical object using themultidimensional data, wherein the client computing device is incapableof displaying the multidimensional data.
 14. The non-transitorycomputer-readable medium of claim 13, wherein the multidimensional datais received as a plurality of separate data sets.